import request from '@/utils/request'

/**
 * 获取Service列表
 * @param {string} namespace - 命名空间名称
 * @param {Object} query - 查询参数
 * @returns {Promise} - 返回请求的Promise对象
 */
export function getServiceList(namespace, query) {
  return request({
    url: `/service/${namespace}/list`,
    method: 'get',
    params: query
  })
}

/**
 * 获取Service详细信息
 * @param {string} namespace - 命名空间名称
 * @param {string} serviceName - Service名称
 * @param {Object} query - 查询参数
 * @returns {Promise} - 返回请求的Promise对象
 */
export function getServiceDetail(namespace, serviceName, query) {
  return request({
    url: `/service/${namespace}/${serviceName}`,
    method: 'get',
    params: query
  })
}
/**
 * 创建Service
 * @param {string} namespace - 命名空间名称
 * @param {string} serviceName - Service名称
 * @param {Object} data - Service配置数据
 * @returns {Promise} - 返回请求的Promise对象
 */
export function createService(namespace, serviceName, data) {
  console.log('API调用: 创建Service', { namespace, serviceName, data })
  return request({
    url: `/service/${namespace}/${serviceName}`,
    method: 'post',
    data: data
  })
}

/**
 * 更新Service
 * @param {string} namespace - 命名空间名称
 * @param {string} serviceName - Service名称
 * @param {Object} data - Service配置数据
 * @returns {Promise} - 返回请求的Promise对象
 */
export function updateService(namespace, serviceName, data) {
  return request({
    url: `/service/${namespace}/${serviceName}`,
    method: 'put',
    data: data
  })
}

/**
 * 删除Service
 * @param {string} namespace - 命名空间名称
 * @param {string} serviceName - Service名称
 * @returns {Promise} - 返回请求的Promise对象
 */
export function deleteService(namespace, serviceName) {
  return request({
    url: `/service/${namespace}/${serviceName}`,
    method: 'delete'
  })
}

/**
 * 批量删除Service
 * @param {string} namespace - 命名空间名称
 * @param {Object} data - 包含服务名称数组的数据
 * @returns {Promise} - 返回请求的Promise对象
 */
export function deleteMultipleServices(namespace, data) {
  return request({
    url: `/service/${namespace}`,
    method: 'delete',
    data: data
  })
}

/**
 * 根据标签删除Service
 * @param {string} namespace - 命名空间名称
 * @param {string} labelSelector - 标签选择器
 * @returns {Promise} - 返回请求的Promise对象
 */
export function deleteServicesByLabel(namespace, labelSelector) {
  return request({
    url: `/service/${namespace}/label`,
    method: 'delete',
    params: { // 使用 params 作为查询参数
      labelSelector: labelSelector
    }
  })
}
